home *** CD-ROM | disk | FTP | other *** search
- LIVING WITH DOS: PRINT SPOOLERS
- by Barry Simon
-
- Copyright (c) 1987, Capital PC User Group Inc.
- This material may be republished only for internal use
- by other not-for-profit user groups.
-
- Posted on Compuserve with permission of CPCUG. May not be
- reproduced without including the above copyright notice.
-
- Published in the May 1987 issue of the Capital PC Monitor.
-
-
- Interfacing your peripheral devices called I/O (for input/output)
- is the slowest aspect of using your computer. In the March
- Monitor, I discussed disk caches as a way to speed up disk access.
- This month, we'll take a look at print spoolers. Depending on your
- printer, printing a 20 page document can take anywhere from 5 to
- 20 minutes. If you are printing in graphics mode as you might
- with a technical word processor or fancy printing program like
- LePrint, the times are likely to be a multiple of these. It is
- silly to tie up a powerful computer merely because your printer is
- incapable of processing output at the rate that your application
- can produce them. For this reason, I regard print spoolers as
- among the most important productivity tools you can add to your
- basic system. If your printing is only in text mode you will
- benefit considerably even if you can only afford the memory for a
- 10K spooler.
-
- In this month's article, I will discuss the things you should look for
- in a print spooler and describe a sampling of the available programs.
-
- Even if your main application programs have their own internal
- spooler, a stand alone spooler may be a sensible program to use.
- If you print from a word processor which has an internal spooler,
- you will be able to continue using the word processor but unable
- to exit and use another program.
-
- If you have never used a spooler, you will be amazed the first
- time that you do a <Shift-PrtSc> screen dump at the DOS level. The
- stately and slow procession of the cursor down the screen is
- replaced by a blur.
-
- For this review, the following print spoolers were evaluated:
-
- o The print spooler provided by AST with its memory expansion boards;
-
- o The print spooler provided by Intel with its AboveBoards;
-
- o The print spooler provided by Quadram with its memory expansion
- boards;
-
- o JSPOOL, from Tall Tree Systems;
-
- o MSPOOL2, a software program written by Rich Winkel;
-
- o Personal Print Control, from IBM; and
-
- o PrintQ, from Software Directions.
-
- Before we look at the programs being reviewed, I think that it is
- important to first briefly discuss PRINT.COM, the spooling program that
- is included with DOS 3.x.
-
-
- The DOS Print Command
-
- MS DOS comes with a free spooling program called PRINT.COM. While
- I have friends who use it, I have always found the performance
- loss associated with it unacceptable. A good spooler should be
- close to transparent. If you are only typing input in a word
- processor or at the DOS level, you shouldn't even know that the
- spooler is operating. With PRINT, I've always found a noticeable
- slowdown especially at the DOS level. PRINT has a number of
- parameters to play with but I've found that even by adjusting
- these I am unable to find an acceptable setting. Another
- disadvantage of PRINT is that it will only print disk files so it
- can only be used with application programs that allow you to print
- to disk and then only by the inconvenient method of exiting to DOS
- to do the printing.
-
- PRINT is slow in part because it is a true multi-tasking program
- accessing disk files rather than a file in memory. While this
- means that the RAM demands are small, it requires some
- contortions on DOS' part. DOS is non-reentrant which, roughly
- speaking, means that if it is in the middle of one task and you ask
- it to do another, it will be confused (your system is likely
- to crash) when it finishes the second task and returns to the
- first. That is why a program like SideKick will refuse to come up when
- you are scrolling a directory listing; instead, it just beeps at you.
- If it did come up and you then tried to save a file to disk, DOS would
- be badly fouled up.
-
- Whenever you are at the DOS level, DOS is calling its service that
- reads the keyboard. DOS has built in a special undocumented call to
- allow PRINT to only do work at a safe time. It can be argued that the
- most important function of PRINT.COM is that it has provided the
- resident program developers willing to unassemble it, the necessary
- hints to make resident programs that can safely call DOS services.
-
-
- What to Look For
-
- There are four things you should look for when evaluating a print
- spooler:
-
- o How transparent it is;
-
- o What its memory demands are;
-
- o How much control it gives you; and
-
- o Whether it handles graphics properly.
-
- Transparency to the user has several aspects. First, the program
- should not be noticeable when you are merely typing. Of course,
- there is no free lunch and you have got to expect some slowdown
- for processor intensive tasks like compiling a program or
- calculating a spreadsheet. All the programs under review met this
- criterion. While you have to expect printing to be somewhat
- slowed down if it is only being done as a background process,
- you'd like that slowing to be as small as possible. On an AT, I
- found all these programs acceptable. The most noticeable slowing
- concerned the disk based spooler PrintQ, so much so that if you
- use your printer very heavily, it may be only marginally
- acceptable. Transparency also concerns what I'd call the tinker
- factor. Does the program require you to often adjust parameters
- to get it to run properly? PrintQ trades a remarkable amount of
- control for a real tinker factor as I'll explain. All the other
- programs have a totally acceptable level of tinkering required --
- basically, very little.
-
- Except for PrintQ, all these programs have a rather low overhead
- (in the 1 to 12 K range). The main issue is what kind of memory
- the program uses to store the material to be printed. As already
- noted, PrintQ, and optionally JSPOOL, use disk space which has the
- advantage of being able to handle multi-page graphics jobs; the
- tradeoff is that it uses more processing overhead, even if the disk is
- a RAM disk, and even more if accessing a physical disk. Two of the
- programs, Personal Print Control and MSPOOL2, use conventional memory
- as do several others as an option. As we'll see, this effectively
- limits them to spooling text and not graphics. Finally, the AST, Intel
- and Quadram print spoolers that only come with boards exploit extended
- or EMS memory. This is the best situation as far as memory usage is
- concerned, since spoolers represent a good use for memory expansion
- cards. Table 1 summarizes the type of memory available and the
- conventional memory usage of the control program.
-
- The amount of control that these programs give you over printing
- once spooling has begun is probably the most important
- distinguishing factor. In particular, it may matter if the
- control is only at the DOS level or is through a resident program
- which can called up with the right hot key. What kind of control
- can you hope for? First, you might want the power to flush the
- buffer, that is, cancel all further printing from the spooler of
- material that has already been sent to the spooler. You might
- want to do this if, for example, you realize that you neglected to
- turn on near letter quality printing for a job that really
- requires it. Secondly, you might want to be able to pause
- printing if, for example, your phone rings. Thirdly, you might
- want to get a reading of how much empty space is left in the
- buffer. Fourth, you might want the power to disable the buffer,
- that is, to send material directly to the printer without the
- intervention of the spooler. This may be necessary if some
- program is incompatible with the spooler. The control can be more
- involved as we'll discuss. This issue is so important, we'll
- discuss it further below and summarize in Table 1.
-
- Finally, there is the issue of printing graphics. For reasons
- that are not entirely clear to me, not all programs are capable of
- printing graphics properly. I tested each of the programs with Print
- Shop and LePrint, a program which produces high quality print in a
- variety of fonts on dot matrix printers by using graphics mode. Of the
- print spoolers, only MSPOOL2 printed graphics improperly; you will have
- to disable it whenever you want to print graphics. To print from
- LePrint with JSPOOL, it was essential that its smart processing, to be
- described later, be turned off.
-
- You must keep in mind that the memory usage required for graphics
- printing is enourmous. Text based printing involves 2 - 4K per page,
- so it is practical to handle 10 page documents; even in conventional
- memory and with a memory card, 50 page documents are possible. Let us
- do the computation for a bit mapped page on a laser printer. It
- requires one bit to describe each potential dot. The number of dots is
- 8 inches by 11 inches by 300 dots per inch squared. Taking into
- account the fact that one byte can describe 8 dots, we come up with a
- whopping 900K. For a nine pin printer, the figure is only about 160K
- while for a 24 pin printer, it is in the 250 - 350K range. It is clear
- that a spooler cannot handle long graphics printing jobs and that even
- medium sized jobs require a disk based spooler like PrintQ and a hard
- disk with megabytes of free space. When I say that a spooler can
- handle such jobs, all I mean is that the spooler fills up and you then
- wait for the printer. In fact, because of the overhead associated with
- the spooler, you wait longer than if you had no spooler!
-
-
- Spooler Control
-
- Table 1 gives a listing of the control functions provided by each
- program. I am fond of the Quadram spooler which gives you
- resident control in a little box that pops up in the upper left
- hand corner of the screen. It pops up in text or CGA graphics
- mode (without mode change) but not in high resolution EGA modes.
- You can load spoolers for more than one printer and choose the hot
- key to be a pair of the four shifts. This choice of hot key is
- limited but giving you any choice is the exception. The Intel spooler
- only pops up on <Shift-PrtSc> (thereby conflicting with PC Paintbrush's
- Frieze progrm), Personal Print Control pops up on the two ordinary
- shifts only, and PrintQ only on <Ctrl-Alt-P>.
-
- When it comes to control, Personal Print Control and PrintQ are of
- special note. Personal Print Control pops up a window that lets
- you move back the buffer pointer to characters already printed,
- thereby letting you recover from a paper jam without reprinting
- the whole job( at least with text mode). A separate window pops up
- and lets you send printer codes to your printer, ahead of the
- queue in the spooler. On balance, my favorite interface was that
- of Personal Print Control; I only wish that it supported extended
- or EMS memory. The control provided by PrintQ is extraordinary.
- It treats each print job as a separate item and you can rearrange the
- order of printing of any unprinted job. You can preassign
- priority levels to jobs, and you can save individual jobs to disk for
- later printing or to keep a record on disk. There are tradeoffs
- for this power which make it less than ideal for some users; I
- found that quite a bit of experimentation was necessary to prevent
- it from splitting a single job into multiple jobs with certain
- programs and experimentation with other factors was also needed.
- In addition, its memory usage is inordinately large compared to
- the other programs. Its spooling to disk is a mixed bag; there
- does seem to be some performance degradation relative to memory
- based spoolers, but you can use it for multi-page graphics jobs.
-
- JSPOOL has an interesting feature but one that many users are
- likely to ignore. While you can only send it commands directly at
- the DOS level, you can also send it commands in the print stream.
- If the character stream sent to the printer includes @#$, then the
- next characters until a ; are a command. For example with an IBM
- graphics compatible printer, the string
-
- this is what @#$ C; compressed mode@#$ -C; looks like
-
- would print only the middle in compressed print. Since this
- checking must be turned off for graphics printing, it is likely to
- be unwieldy if you do much graphics printing and, in any event, it
- requires a hacker outlook to use it.
-
-
- Summary
-
- Unless you have no printer, you should definitely be using a print
- spooler. Even a 10K spooler can make a big difference for printing in
- text mode. For graphics printing, you'll need a much bigger spooler
- which means either one of the disk based commercial spoolers or a
- memory board and extended or EMS spooler. It is a shame that the
- only spoolers of the later type that I know of are bundled with
- memory boards and not available for separate purchase. From
- questions I have seen posted on Compuserve, there is probably a
- real market for such a program. Ideal in my opinion would be a
- version of Personal Print Control that supports EMS and/or extended
- memory.
-
- The AST print spooler is published by AST Research, Irvine, CA,
- (714) 863-1333. It is bundled with their memory expansion boards
- and is not sold separately.
-
- The Intel print spooler is published by Intel Corporation, PCEO
- division, 5200 NE Elam Young Parkway, Hillsboro, OR 97124, (800)
- 538-3373. It is bundled with their AboveBoards and is not sold
- separately.
-
- The Quadram print spooler is published by Quadram, One Quad Way,
- Norcross, GA 30093, (404) 923-6666. It is bundled with their
- memory expansion boards and is not sold separately.
-
- JSPOOL is published by Tall Tree Systems, 1120 San Antonio Road,
- Palo Alto, CA 94303,(415) 964-1980. It is bundled with their
- memory expansion boards but is sold separately as a package with
- their enhanced copy program JET and their RAM disk for $50 or as a
- single program for $20.
-
- MSPOOL2 is a free software program by Rich Winkel available on
- many BBSs.
-
- Personal Print Control is published by IBM as part of the PDSW series,
- Personally Developed Software, P.O. Box 3266, Wallingford, CT 06494,
- (800) 426-7279. The suggested retail price is $29.95.
-
- PrintQ is published by Software Directions, 1572 Sussex Turnpike,
- Randolph, NJ 07869, (800) 346-7638. The suggested retail price is
- $89.
-
-
-
- AST Intel QUADRAM JSPOOL MSPOOL2 PPC PrintQ
- -----------------------------------------------------
- Type of Memory CEX CE CEX CJ(D) C C D
- Memory Requirement 2K 11K 3K 5K 1K 12K 43K
- Control DOS Res Res DOS DOS Res Res
- Flush Buffer Yes Yes Yes Yes Yes Yes Yes
- Pause Printing Yes Yes Yes Yes No Yes Yes
- Disengage Buffer No No No No Yes Yes Yes
- Reprint Material P No No No No Yes Yes
- Multiple Copies No No No No No Yes Yes
- Separate Jobs No No No No No No Yes
- Send Control Codes Yes FF No Yes No Yes FF
- Print Stream Codes No No No Yes No No No
-
-
- Table 1. Summary of Print Spooler Features
-
-
- Type of Memory: C=conventional
- E=EMS
- X=Extended
- D=Disk
- J=JRAM
- Jspool allows you to spool to their RAMDISK only
-
- Amount of memory for control program (conventional in K)
- PrintQ with "color" support takes 55K
-
- Control: DOS=Dos Level R=resident
- Res=Resident
-
- Remaining options are YES/NO, except for Reprint Material, where P denotes
- reprint current page and Send Control Codes, where FF=form feed only
-
-